home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / basic / Codewandler.lha / Codewandler.ASC next >
Text File  |  2002-03-03  |  13KB  |  491 lines

  1. '
  2. '  CodeWandler by J. F. from SATANIC 
  3. '  für Xplodercodes (Sony PSX) (Playstationbesitzer wissen Bescheid) 
  4. '  english 
  5. '  only codes with coding 5 or 6 are available 
  6. '  coding 6 codes are distributed by FCD (Future Console Design) itself  
  7. '  no warranty for any mistakes; using this of your own risk 
  8. '  These was written for AMOS and AMOSPro (AMIGA)
  9. '  for use with PC (QBasic) little changes needed  
  10. '  sorry for my bad english
  11. '  this code is mailware; if you use it, send me a mail: 
  12. '  shuddemel(at)aol.com  
  13. '  
  14. '  deutsch 
  15. '  nur Codes mit der Codierung 5 oder 6 sind möglich umzuwandeln 
  16. '  Codes mit der Codierung 6 werden nur von FCD selbst herausgebracht
  17. '  Ich gebe keine Garantie für irgendwelche Fehler;
  18. '  Benutzung auf eigenes Risiko
  19. '  Geschrieben habe ich das Programm in AMOS und AMOSPro (AMIGA) 
  20. '  Um es mit dem PC (QBasic) zu nutzen sind kleine Änderungen nötig  
  21. '  Dieses Programm ist Mailware; falls jemand es benutzt, mailt mir: 
  22. '  shuddemel(at)aol.com
  23. '
  24. Screen Open 0,640,250,4,Hires
  25. Dim CD(16)
  26. If Not Exist("Codes")
  27.    Mkdir "Codes"
  28. End If 
  29. DC$="Codes/"
  30. NOCHMAL:
  31. Cls 
  32. Locate 0,4 : Input "Verschlüsselter Code : $";CODE$
  33. Repeat : Until Not Key State(68)
  34. A$="0123456789ABCDEF"
  35. If CODE$<>""
  36.    L=Len(CODE$)
  37.    If L=12
  38.       For X=1 To 12
  39.          R$=Mid$(CODE$,X,1)
  40.          V=0
  41.          R$=Upper$(R$)
  42.          For Y=1 To 16
  43.             If R$=Mid$(A$,Y,1)
  44.                Exit 
  45.             Else 
  46.                Inc V
  47.             End If 
  48.             If V=16
  49.                Locate 0,5 : Print "Ungültiger Wert an Position ";X;"."
  50.                Goto N
  51.             End If 
  52.          Next Y
  53.          R$=Upper$(R$)
  54.          Gosub VL
  55.          CD(X)=R
  56.          If X=1 : CD(X)=R : End If 
  57.          If X=2
  58.             If CD(X)=5
  59.                COD=1
  60.             Else 
  61.                If CD(X)=7
  62.                   COD=2
  63.                Else 
  64.                   COD=0
  65.                End If 
  66.             End If 
  67.             CD(X)=0
  68.          End If 
  69.          If X=3
  70.             If COD=1
  71.                Restore C3
  72.                For CC=1 To 16
  73.                   Read E3
  74.                   If R=CC-1
  75.                      CD(X)=E3
  76.                      Exit 
  77.                   End If 
  78.                Next CC
  79.             Else 
  80.                If COD=2
  81.                   Restore S3
  82.                Else 
  83.                   E3=5
  84.                   If CD(X)=6 : E3=6 : End If 
  85.                   CD(X)=0
  86.                End If 
  87.             End If 
  88.          End If 
  89.          If X=4
  90.             If COD=0
  91.                Restore V4
  92.             Else 
  93.                If COD=2
  94.                   Restore S4
  95.                Else 
  96.                   Restore C4
  97.                End If 
  98.             End If 
  99.             For CC=1 To 16
  100.                Read E4
  101.                If R=CC-1
  102.                   CD(X)=E4
  103.                   If COD=1
  104.                      If CC>9
  105.                         Inc CD(X-1)
  106.                         If CD(X-1)=16
  107.                            CD(X-1)=0
  108.                         End If 
  109.                      End If 
  110.                   Else 
  111.                      If COD=2
  112.                      Else 
  113.                         If CC>5 and E3=6
  114.                            CD(X-1)=1
  115.                         End If 
  116.                      End If 
  117.                   End If 
  118.                   Exit 
  119.                End If 
  120.             Next CC
  121.          End If 
  122.          If X=5
  123.             If COD=0
  124.                Restore V5
  125.             Else 
  126.                If COD=2
  127.                   Restore S5
  128.                Else 
  129.                   Restore C5
  130.                End If 
  131.             End If 
  132.             For CC=1 To 16
  133.                Read E5
  134.                If R=CC-1
  135.                   CD(X)=E5
  136.                   Exit 
  137.                End If 
  138.             Next CC
  139.          End If 
  140.          If X=6
  141.             If COD=0
  142.                Restore V6
  143.                EH=6
  144.             Else 
  145.                If COD=2
  146.                   Restore S6
  147.                Else 
  148.                   Restore C6
  149.                   EH=14
  150.                End If 
  151.             End If 
  152.             For CC=1 To 16
  153.                Read E6
  154.                If R=CC-1
  155.                   CD(X)=E6
  156.                   If COD=0
  157.                      If CC<EH
  158.                         Dec CD(X-1)
  159.                         If CD(X-1)=-1
  160.                            CD(X-1)=15
  161.                         End If 
  162.                      End If 
  163.                   Else 
  164.                      If COD=2
  165.                      Else 
  166.                         If CC>EH
  167.                            Inc CD(X-1)
  168.                            If CD(X-1)=16
  169.                               CD(X-1)=0
  170.                            End If 
  171.                         End If 
  172.                      End If 
  173.                   End If 
  174.                   Exit 
  175.                End If 
  176.             Next CC
  177.          End If 
  178.          If X=7
  179.             If COD=0
  180.                Restore V7
  181.             Else 
  182.                If COD=2
  183.                   Restore S7
  184.                Else 
  185.                   Restore C7
  186.                End If 
  187.             End If 
  188.             For CC=1 To 16
  189.                Read E7
  190.                If R=CC-1
  191.                   CD(X)=E7
  192.                   Exit 
  193.                End If 
  194.             Next CC
  195.          End If 
  196.          If X=8
  197.             If COD=0
  198.                Restore V8
  199.                EH=6
  200.             Else 
  201.                If COD=2
  202.                   Restore S8
  203.                Else 
  204.                   Restore C8
  205.                   EH=15
  206.                End If 
  207.             End If 
  208.             For CC=1 To 16
  209.                Read E8
  210.                If R=CC-1
  211.                   CD(X)=E8
  212.                   If COD=0
  213.                      If CC<EH
  214.                         Dec CD(X-1)
  215.                         If CD(X-1)=-1
  216.                            CD(X-1)=15
  217.                         End If 
  218.                      End If 
  219.                   Else 
  220.                      If COD=2
  221.                      Else 
  222.                         If CC>EH
  223.                            Inc CD(X-1)
  224.                            If CD(X-1)=16
  225.                               CD(X-1)=0
  226.                            End If 
  227.                         End If 
  228.                      End If 
  229.                   End If 
  230.                   Exit 
  231.                End If 
  232.             Next CC
  233.          End If 
  234.          If X=9
  235.             If COD=0
  236.                Restore V9
  237.             Else 
  238.                If COD=2
  239.                   Restore S9
  240.                Else 
  241.                   Restore C9
  242.                End If 
  243.             End If 
  244.             For CC=1 To 16
  245.                Read E9
  246.                If R=CC-1
  247.                   CD(X)=E9
  248.                   Exit 
  249.                End If 
  250.             Next CC
  251.          End If 
  252.          If X=10
  253.             If COD=0
  254.                Restore V10
  255.                EH=6
  256.             Else 
  257.                If COD=2
  258.                   Restore S10
  259.                Else 
  260.                   Restore C10
  261.                   EH=14
  262.                End If 
  263.             End If 
  264.             For CC=1 To 16
  265.                Read E10
  266.                If R=CC-1
  267.                   CD(X)=E10
  268.                   If COD=0
  269.                      If CC<EH
  270.                         Dec CD(X-1)
  271.                         If CD(X-1)=-1
  272.                            CD(X-1)=15
  273.                         End If 
  274.                      End If 
  275.                   Else 
  276.                      If COD=2
  277.                      Else 
  278.                         If CC>EH
  279.                            Inc CD(X-1)
  280.                            If CD(X-1)=16
  281.                               CD(X-1)=0
  282.                            End If 
  283.                         End If 
  284.                      End If 
  285.                   End If 
  286.                   Exit 
  287.                End If 
  288.             Next CC
  289.          End If 
  290.          If X=11
  291.             If COD=0
  292.                Restore V11
  293.             Else 
  294.                If COD=2
  295.                   Restore S11
  296.                Else 
  297.                   Restore C11
  298.                End If 
  299.             End If 
  300.             For CC=1 To 16
  301.                Read E11
  302.                If R=CC-1
  303.                   CD(X)=E11
  304.                   Exit 
  305.                End If 
  306.             Next CC
  307.          End If 
  308.          If X=12
  309.             If COD=0
  310.                Restore V12
  311.                EH=6
  312.             Else 
  313.                If COD=2
  314.                   Restore S12
  315.                Else 
  316.                   Restore C12
  317.                   EH=13
  318.                End If 
  319.             End If 
  320.             For CC=1 To 16
  321.                Read E12
  322.                If R=CC-1
  323.                   CD(X)=E12
  324.                   If COD=0
  325.                      If CC<EH
  326.                         Dec CD(X-1)
  327.                         If CD(X-1)=-1
  328.                            CD(X-1)=15
  329.                         End If 
  330.                      End If 
  331.                   Else 
  332.                      If COD=2
  333.                      Else 
  334.                         If CC>EH
  335.                            Inc CD(X-1)
  336.                            If CD(X-1)=16
  337.                               CD(X-1)=0
  338.                            End If 
  339.                         End If 
  340.                      End If 
  341.                   End If 
  342.                   Exit 
  343.                End If 
  344.             Next CC
  345.          End If 
  346.       Next X
  347.       UCODE$=""
  348.       For X=1 To 12
  349.          R=CD(X)
  350.          Gosub VR
  351.          UCODE$=UCODE$+RC$
  352.       Next X
  353.       D=CD(9)*16^3+CD(10)*16^2+CD(11)*16+CD(12) mod 16
  354.       Locate 0,5 : Print "Entschlüsselter Code : $";UCODE$;" Hex :";Hex$(D,4);" = Dezimal : ";D
  355.       If COD=1 : KEY=5 : End If 
  356.       If COD=0 : KEY=6 : End If 
  357.       If COD=2 : KEY=7 : End If 
  358.       Open Out 1,DC$+Upper$(CODE$)
  359.       Print #1,Chr$(10)+"                codierte Explodercodes für SonyPSX Games "+Chr$(10);
  360.       Print #1,"                decodiert mit AMOS by  J.F. from SATANIC"+Chr$(10);
  361.       Print #1,"                ----------------------------------------"+Chr$(10)+Chr$(10);
  362.       Print #1,"                  Codiert: $"+Upper$(CODE$)+"    Codierung: "+Str$(KEY)-" "+Chr$(10);
  363.       Print #1,"                Decodiert: $"+UCODE$+Chr$(10)+Chr$(10);
  364.       Close 1
  365.       Goto N
  366.    Else 
  367.       Locate 0,5 : Print "Ungültige Anzahl."
  368.       Goto N
  369.    End If 
  370. Else 
  371.    N:
  372.    Locate 0,6 : Print "Nochmal? j/n: "
  373.    Repeat 
  374.       I$=Inkey$
  375.    Until I$<>""
  376.    If I$<>""
  377.       If Upper$(I$)="J"
  378.          Goto NOCHMAL
  379.       Else 
  380.          End 
  381.       End If 
  382.    Else 
  383.       End 
  384.    End If 
  385. End If 
  386. VL:
  387. If R$="0" : R=0 : End If 
  388. If R$="1" : R=1 : End If 
  389. If R$="2" : R=2 : End If 
  390. If R$="3" : R=3 : End If 
  391. If R$="4" : R=4 : End If 
  392. If R$="5" : R=5 : End If 
  393. If R$="6" : R=6 : End If 
  394. If R$="7" : R=7 : End If 
  395. If R$="8" : R=8 : End If 
  396. If R$="9" : R=9 : End If 
  397. If R$="A" : R=$A : End If 
  398. If R$="B" : R=$B : End If 
  399. If R$="C" : R=$C : End If 
  400. If R$="D" : R=$D : End If 
  401. If R$="E" : R=$E : End If 
  402. If R$="F" : R=$F : End If 
  403. Return 
  404. VR:
  405. If R=0 : RC$="0" : End If 
  406. If R=1 : RC$="1" : End If 
  407. If R=2 : RC$="2" : End If 
  408. If R=3 : RC$="3" : End If 
  409. If R=4 : RC$="4" : End If 
  410. If R=5 : RC$="5" : End If 
  411. If R=6 : RC$="6" : End If 
  412. If R=7 : RC$="7" : End If 
  413. If R=8 : RC$="8" : End If 
  414. If R=9 : RC$="9" : End If 
  415. If R=$A : RC$="A" : End If 
  416. If R=$B : RC$="B" : End If 
  417. If R=$C : RC$="C" : End If 
  418. If R=$D : RC$="D" : End If 
  419. If R=$E : RC$="E" : End If 
  420. If R=$F : RC$="F" : End If 
  421. Return 
  422. V3:
  423. Data 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1
  424. V4:
  425. Data $A,$D,$C,$F,$E,1,0,3,2,5,4,7,6,9,8,$B
  426. V5:
  427. Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
  428. V6:
  429. Data 9,$E,$F,$C,$D,2,3,0,1,6,7,4,5,$A,$B,8
  430. V7:
  431. Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
  432. V8:
  433. Data 8,$F,$E,$D,$C,3,2,1,0,7,6,5,4,$B,$A,9
  434. V9:
  435. Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
  436. V10:
  437. Data $F,8,9,$A,$B,4,5,6,7,0,1,2,3,$C,$D,$E
  438. V11:
  439. Data $B,$C,$D,$E,$F,0,1,2,3,4,5,6,7,8,9,$A
  440. V12:
  441. Data $E,9,8,$B,$A,5,4,7,6,1,0,3,2,$D,$C,$F
  442. C3:
  443. Data 5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2,3,4
  444. C4:
  445. Data 7,8,9,$A,$B,$C,$D,$E,$F,0,1,2,3,4,5,6
  446. C5:
  447. Data 4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2,3
  448. C6:
  449. Data 2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1
  450. C7:
  451. Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
  452. C8:
  453. Data 1,2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0
  454. C9:
  455. Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
  456. C10:
  457. Data 2,3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1
  458. C11:
  459. Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
  460. C12:
  461. Data 3,4,5,6,7,8,9,$A,$B,$C,$D,$E,$F,0,1,2
  462. S3:
  463. Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  464. S4:
  465. Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  466. Data 0
  467. S5:
  468. Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  469. Data 0
  470. S6:
  471. Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  472. Data 0
  473. S7:
  474. Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  475. Data 0
  476. S8:
  477. Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  478. Data 0
  479. S9:
  480. Data 0,0,0,$0,0,0,0,0,0,0,0,0,$F,0,0,0
  481. Data 0
  482. S10:
  483. Data 0,$F,0,0,0,$0,0,0,0,0,0,0,0,0,0,0
  484. Data 0
  485. S11:
  486. Data 0,0,$F,$0,0,0,0,0,0,0,0,0,0,0,0,0
  487. Data 0
  488. S12:
  489. Data 0,0,0,$F,0,$0,0,0,0,0,0,0,0,0,0,0
  490. Data 0
  491.